const path = require('path');
const fs = require('fs');
const timeStamp = require('time-stamp');
const express = require('express');
let router=express.Router()



// console.log(timeStamp("YYYY年MM月DD日 HH:mm:ss"));//2022年04月01日 09:59:07



// 渲染页面
router.get("/register",(req,res)=>{

    // res.send("getregister")

    let filepath=path.join(__dirname,"../views/register.html")
    
    res.sendFile(filepath)
})


// 接收用户的请求，并且处理
router.post("/register",(req,res,next)=>{

    //1、用户提交过来的信息
    let {username,password,password2,yzm}=req.body


    // 1.1 用户名或密码
    // if(!username || !password){
    //     next("请输入用户名或密码")
    //     return
    // }
    // if(!password2){
    //     next("请再次输入密码")
    //     return
    // }
    // if(password!=password2){
    //     next("两次输入的密码不一致")
    //     return
    // }
    // if(!yzm){
    //     next("请输入验证码")
    //     return
    // }


    if(!username || !password || !password2 || !yzm){
        next("请输入必要的参数")
        return
    }
    if(password!=password2){
        next("两次输入的密码不一致")
        return
    }
    // 判断验证码是否正确（未完成。。。。）


   

    // 2、数据库中的信息
    let filepath=path.join(__dirname,"../data/persons.json")

    // let persons=JSON.parse( fs.readFileSync( filepath,"utf-8" )  )

    
    let persons;
    try {
        // 正常的代码写这里
       persons=JSON.parse( fs.readFileSync( filepath,"utf-8" )  )
    } catch (error) {
        // 如果正确，则不会走这里，如果出错了，就会在这里拦截
        // next(error)//ReferenceError: fs is not defined
        next("请稍后重试")
        return
    }
    

    // 3、去数据库查找是否存在用户信息
    let index=persons.findIndex(item=>{

        return username==item.username
    })

    if(index!=-1){
        // 有此用户
        next("此用户名已占用")
        return
    }


    // 4、执行注册
    let time=timeStamp("YYYY年MM月DD日 HH:mm:ss")
    persons.push( { username,password,time}  )

    fs.writeFileSync( filepath, JSON.stringify(persons)   )

    res.send({
        status:200,
        msg:"注册成功"
    })
})


module.exports=router